e64a0f1ebf1d6ad4147f6fd0e546a90c780d2028,katharsis-core/src/main/java/io/katharsis/queryParams/DefaultQueryParamsParser.java,DefaultQueryParamsParser,parseFiltersParameters,#Map#,29
Before Change
@Override
public Map<String, Set<String>> parseFiltersParameters(final Map<String, Set<String>> queryParams) {
String filterKey = RestrictedQueryParamsMembers.filter.name();
return filterQueryParamsByKey(queryParams, filterKey);
}
@Override
After Change
*/
protected TypedParams<FilterParams> parseFiltersParameters(final QueryParamsParserContext context) {
String filterKey = RestrictedQueryParamsMembers.filter.name();
Map<String, Set<String>> filters = filterQueryParamsByKey(context, filterKey);
Map<String, Map<String, Set<String>>> temporaryFiltersMap = new LinkedHashMap<>();
for (Map.Entry<String, Set<String>> entry : filters.entrySet()) {
List<String> propertyList = buildPropertyListFromEntry(entry, filterKey);
String resourceType = propertyList.get(0);
String propertyPath = StringUtils.join(".", propertyList.subList(1, propertyList.size()));
if (temporaryFiltersMap.containsKey(resourceType)) {
Map<String, Set<String>> resourceParams = temporaryFiltersMap.get(resourceType);
resourceParams.put(propertyPath, Collections.unmodifiableSet(entry.getValue()));
} else {
Map<String, Set<String>> resourceParams = new LinkedHashMap<>();
temporaryFiltersMap.put(resourceType, resourceParams);
resourceParams.put(propertyPath, entry.getValue());
}
}
Map<String, FilterParams> decodedFiltersMap = new LinkedHashMap<>();
for (Map.Entry<String, Map<String, Set<String>>> resourceTypesMap : temporaryFiltersMap.entrySet()) {
Map<String, Set<String>> filtersMap = Collections.unmodifiableMap(resourceTypesMap.getValue());
decodedFiltersMap.put(resourceTypesMap.getKey(), new FilterParams(filtersMap));
}
return new TypedParams<>(Collections.unmodifiableMap(decodedFiltersMap));
}
/**